/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GUI;

import dominio.Cliente;
import dominio.Consorcio;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.swing.JOptionPane;
import negocio.ConsorcioNegocio;

/**
 *
 * @author Oberdan
 */
public class ControladorManterConsorcio extends MouseAdapter implements ActionListener {

    protected ConsorcioNegocio negocio = new ConsorcioNegocio();
    private Consorcio consorcio = new Consorcio();
    protected JanelaGerenciarConsorcio jGCO;
    protected JanelaCadastrarConsorcio jCCO;
    private Consorcio c = new Consorcio();
    private String mensagemCampoObrigatorio = "";
    private String mensagem = "";

    public String getMensagemCampoObrigatorio() {
        return mensagemCampoObrigatorio;
    }

    public void setMensagemCampoObrigatorio(String mensagemCampoObrigatorio) {
        this.mensagemCampoObrigatorio = mensagemCampoObrigatorio;
    }

    public ControladorManterConsorcio() {
    }

    public Consorcio getC() {
        return c;
    }

    public void setC(Consorcio c) {
        this.c = c;
    }

    public void setJanelaCadastrarConsorcio(JanelaCadastrarConsorcio j) {
        jCCO = j;
    }

    public void deletar() {
        if (jCCO.getCampoCpf().trim().length() < 14) {
            setMensagemCampoObrigatorio("Preencha o campo cpf corretamente");
            JOptionPane.showMessageDialog(jCCO, getMensagemCampoObrigatorio());
            setMensagemCampoObrigatorio("");
            return;
        } else {
            mensagem = negocio.excluirConsorcioDAO(jCCO.getCampoCpf());
            JOptionPane.showMessageDialog(jCCO, mensagem);
        }
    }

    public String validarCampos (JanelaCadastrarConsorcio jCC)
    {
        if (jCC.getCampoData().trim().length() < 10)
        {
            setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios corretamente");
        }else if (jCC.getCampoCpf().trim().length() < 14)
        {
            setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios corretamente");
        }else if (jCC.getCampoModelo().trim().length() ==0)
        {
            setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios corretamente");
        }else if (jCC.getCampoPlano().trim().length() == 0)
        {
            setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios corretamente");
        }else if ((jCC.getCampoValor().trim().length() == 0) || (Double.parseDouble(jCCO.getCampoValor()) < 0))
        {
            setMensagemCampoObrigatorio("Preencha todos os campos obrigatórios corretamente");
        }

        return mensagemCampoObrigatorio;

    }

    public void incluirConsorcio() {
        if (validarCampos(jCCO).equalsIgnoreCase("Preencha todos os campos obrigatórios corretamente"))
        {
            limparTela();
            JOptionPane.showMessageDialog(jCCO, mensagemCampoObrigatorio);
        }else
        {
            DateFormat data = new SimpleDateFormat("dd/MM/yyyy");
            String dataFormatada = jCCO.getCampoData();
            Cliente cliente = new Cliente();
            cliente.setCpf(jCCO.getCampoCpf());
            consorcio.setCliente(cliente);
            consorcio.setCpf(jCCO.getCampoCpf());
            try
            {
                consorcio.setDatainicio(data.parse(dataFormatada));
            }catch(ParseException e)
            {
                e.getStackTrace();
            }
            consorcio.setModelo(jCCO.getCampoModelo());
            try
            {
                consorcio.setPlano(Integer.parseInt(jCCO.getCampoPlano()));
            }catch (NumberFormatException e)
            {
                e.getStackTrace();
            }
            try
            {
                consorcio.setValor(Float.parseFloat(jCCO.getCampoValor()));
            }catch(NumberFormatException e)
            {
                e.getStackTrace();
            }
            mensagem = negocio.incluirConsorcioDAO(consorcio);
            limparTela();
            JOptionPane.showMessageDialog(jCCO, mensagem);
            jCCO.setVisible(false);
        }
    }

    public void alterarConsorcio ()
    {
        if (validarCampos(jCCO).equalsIgnoreCase("Preencha todos os campos obrigatórios corretamente"))
        {
            limparTela();
            JOptionPane.showMessageDialog(jCCO, mensagemCampoObrigatorio);
        }else
        {
            DateFormat data = new SimpleDateFormat("dd/MM/yyyy");
            String dataFormatada = jCCO.getCampoData();
            Cliente cliente = new Cliente();
            cliente.setCpf(jCCO.getCampoCpf());
            consorcio.setCliente(cliente);
            consorcio.setCpf(jCCO.getCampoCpf());
            try
            {
                consorcio.setDatainicio(data.parse(dataFormatada));
            }catch(ParseException e)
            {
                e.getStackTrace();
            }
            consorcio.setModelo(jCCO.getCampoModelo());
            try
            {
                consorcio.setPlano(Integer.parseInt(jCCO.getCampoPlano()));
            }catch (NumberFormatException e)
            {
                e.getStackTrace();
            }
            try
            {
                consorcio.setValor(Float.parseFloat(jCCO.getCampoValor()));
            }catch(NumberFormatException e)
            {
                e.getStackTrace();
            }
            mensagem = negocio.alterarConsorcioDAO(consorcio);
            limparTela();
            JOptionPane.showMessageDialog(jCCO, mensagem);
            jCCO.setVisible(false);
        }
    }


    public void limparTela ()
    {
        jCCO.setCampoCpf("");
        jCCO.setCampoData("");
        jCCO.setCampoModelo("");
        jCCO.setCampoPlano("");
        jCCO.setCampoValor("");
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equalsIgnoreCase("Excluir")) {
            deletar();
        }else if (e.getActionCommand().equalsIgnoreCase("Salvar"))
        {
            incluirConsorcio();
        }else if (e.getActionCommand().equalsIgnoreCase("Alterar"))
        {
            alterarConsorcio();
        }else if (e.getActionCommand().equalsIgnoreCase("Sair"))
        {
            jCCO.setVisible(false);
        }
    }
}
